Historically, in server based networks serving one or more clients, the servers have utilized powerful computers while the client computers have utilized computers possessing limited computing power and limited storage capacity. Generally, communication between the clients and the servers has been enabled through the use of a LAN (Local Area Network) using a high capacity communication link and generating a domain.
A domain is a group of computers and devices on a network that are administered as a unit with common rules and procedures. Within the Internet, domains are defined by the IP address that is assigned. All devices sharing a common part of the IP address are said to be in the same domain.
Therefore, in client/server architectures, the storage and the processing is primarily performed on the server side while the client computer operates as a terminal and an interface unit between the user and the server. Obviously, this type of an architecture results in heavy transportation of information between the client and the server. It should be noted that the terms “client” and “user” are used interchangeably herein.
In recent years, the portable computer has experienced explosive growth in utilization, as well as in the performance capabilities, features, processing power, memory availability and capabilities. There has also been a great deal of expansion in use and availability of the global data communication network known as the Internet, and the use of portable communication systems like, but not limited to, cellular or satellite systems.
It is desirable for an enterprise that is using a client/server architecture, for example MICROSOFT OUTLOOK and the MS exchange server, to provide users with the ability to access their MS Office documents and E-mail messages while being out of the office and connected through the Internet via telephone lines or a wireless network, like but not limited to Cellular or Satellite networks. Outlook is Microsoft's mail client and personal information manager. The full version includes a PIM (Personal Information Manager) calendaring, to-do list and groupware functions. OUTLOOK also provides a journaling capability for keeping track of hourly billing. OUTLOOK can be used as the client end to MICROSOFT'S Exchange Server or as the e-mail client with any ISP (Internet Service Provider) account. The paragraphs that follow refer to an MS exchange server as an example of an Email Server of the present invention, and to OUTLOOK as an example of an Email application.
One technical hurdle, in meeting this desire, is that the wireless communication systems or networks have a limited bandwidth. Using such limited bandwidth networks to replace a LAN results in increasing the communication time between the remote users and reduces the quality of the connection.
Therefore there is a need in the art for a system and a method that can reduce the transportation between a remote user and a server in an on-line operation. Such a system can increase the speed of the communication. Further, there is a need in the art for a system and method to reduce the transportation between a remote user and a server over a wireless communication channel.
A specific example of this need can be seen in the setting of a user mailbox within an exchange server. In this setting, the user mailbox is part of the exchange server information store. The information store consists of three implementations of MAPI message stores: the public information store, the private information store, and the personal folder store (PST). MAPI is an abbreviation of Messaging Application Programming Interface, a system built into Microsoft Windows that enables different e-mail applications to work together to distribute mail. As long as both applications are MAPI-enabled, they can share mail messages with each other. The paragraphs that follow refer to MAPI as an example of an application programming interface of the present invention.
The information store organization of public folders, private folders, and messages is referred to as the organization hierarchy. Another implementation of a MAPI message store is configured when a user works offline or not connected to the exchange server. This message store is called the offline folder store (OST) and the content and structure of the OST mirrors the mailbox while offline.
A mailbox is the delivery location for all incoming mail messages addressed to a designated owner. Information in a user's mailbox is stored in the private information store on a Microsoft Exchange Server computer. A mailbox can contain received messages, message attachments, folders, folder hierarchy, and more.
OUTLOOK uses MAPI over Remote Procedure Calls (RPC) as it's transport provider to connect the user to its mailbox that resides physically at the exchange server as part of the information store. RPC is a call that is based on a client server model. Procedures that are called within the client application are actually performed within the server side over a communication channels. The MAPI transport provider and the MAPI message store, called the exchange server service, are tightly coupled in such a way, that it is impossible to use only the MAPI message store and a different transport provider and still maintain the provision of all the services the Exchange server service offers.
Using RPC as the communication between a remote user and its mailbox at the exchange server over low bandwidth is very slow and has a lot of communication overhead. When the user uses OUTLOOK in the offline mode, outgoing messages are kept in the user outbox in its offline folders, and incoming messages are kept for him at the exchange server. When the user is going back online, the exchange server and outlook synchronize those messages. This process results in a significant amount of data transfer to occur, depending on the amount of traffic received and the time that the user has been off line. In a wireless configuration, this process can absorb a significant percentage of the available bandwidth. Thus, there is a need in the art for a method to reduce the transportation between a remote user and a server in an on-line operation when large amounts of data, such as during a synchronization function, is necessary.